home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 1.iso / games / yowsrc12.zip / YOW.C < prev    next >
C/C++ Source or Header  |  1991-09-11  |  2KB  |  128 lines

  1. //
  2. // YOW - if you need to ask, forget it!
  3. //
  4. // Version: 1.1 09/11/91 Copyright (C) 1991, Lantern Corp.
  5. // Author: Edward Hutchins
  6. // Revisions:
  7. //
  8.  
  9. #include "yow.h"
  10.  
  11. //
  12. // globals
  13. //
  14.  
  15. GLOBAL HANDLE   hAppInst;
  16. GLOBAL HWND     hAppWnd;
  17. GLOBAL CHAR     szAppName[8];
  18. GLOBAL CHAR     szDBase[FILENAME_SIZE];
  19. GLOBAL CHAR     szEndChar[2];
  20.  
  21. //
  22. // YowWndProc - the main window proc for Yow
  23. //
  24.  
  25. LONG FAR PASCAL EXPORT YowWndProc( HWND hWnd, WORD mess,
  26.                                    WORD wParam, LONG lParam )
  27. {
  28.     switch (mess)
  29.     {
  30.     case WM_CREATE:
  31.         srand( hWnd ^ LOWORD(GetCurrentTime()) );
  32.         break;
  33.  
  34.     case WM_SYSCOMMAND:
  35.         switch (wParam)
  36.         {
  37.         case IDM_OPTIONS:
  38.             SetYowOptions( hWnd );
  39.             break;
  40.         case IDM_ABOUT:
  41.             AboutYow( hWnd );
  42.             break;
  43.         default:
  44.             return( DefWindowProc( hWnd, mess, wParam, lParam ) );
  45.         }
  46.         break;
  47.  
  48.     case WM_SYSKEYDOWN:
  49.     case WM_SYSCHAR:
  50.     case WM_SYSKEYUP:
  51.         switch (wParam)
  52.         {
  53.         case VK_MENU:
  54.         case VK_ESCAPE:
  55.         case VK_CONTROL:
  56.         case VK_SHIFT:
  57.         case VK_TAB:
  58.         case VK_LEFT:
  59.         case VK_RIGHT:
  60.         case VK_UP:
  61.         case VK_DOWN:
  62.         case VK_NEXT:
  63.         case VK_PRIOR:
  64.         case VK_HOME:
  65.         case VK_END:
  66.             break;
  67.  
  68.         default:
  69.             if (mess == WM_SYSKEYDOWN)
  70.             {
  71.                 if (LOBYTE(lParam) == 1) // repeat count of one
  72.                 {
  73.                     if (wParam == VK_F1) YowHelp( hWnd );
  74.                     else Yow( wParam );
  75.                 }
  76.             }
  77.             return( 0 );
  78.         }
  79.         break;
  80.  
  81.     case WM_RBUTTONDOWN:
  82.     case WM_NCRBUTTONDOWN:
  83.         Yow( VK_RBUTTON );
  84.         break;
  85.  
  86.     case WM_QUERYOPEN:
  87.         return( FALSE ); // always an icon
  88.  
  89.     case WM_CLOSE:
  90.     case WM_DESTROY:
  91.         PostQuitMessage( 0 );
  92.         break;
  93.  
  94.     default:
  95.         return( DefWindowProc( hWnd, mess, wParam, lParam ) );
  96.     }
  97.     return( 0L );
  98. }
  99.  
  100. //
  101. // WinMain - everybody has to have one
  102. //
  103.  
  104. INT FAR PASCAL WinMain( HANDLE hInstance, HANDLE hPrevInstance,
  105.                         LPSTR lpszCmdLine, INT nCmdShow )
  106. {
  107.     MSG     msg;
  108.  
  109.     if (hPrevInstance)
  110.     {
  111.         MessageBeep( 0 );
  112.         return( FALSE );
  113.     }
  114.  
  115.     hAppInst = hInstance;
  116.     if (!CreateYowClass()) return( FALSE );
  117.     SetYowDBase( lpszCmdLine );
  118.     hAppWnd = CreateYowWindow( nCmdShow = SW_MINIMIZE );
  119.     if (hAppWnd == HNULL) return( FALSE );
  120.  
  121.     while (GetMessage( &msg, NULL, 0, 0 ))
  122.     {
  123.         TranslateMessage( &msg );
  124.         DispatchMessage( &msg );
  125.     }
  126.     return( msg.wParam );
  127. }
  128.